package com.zmn.oms.services.interfaces.order;

import com.zmn.oms.model.entity.order.OrderExtend;

import java.util.List;

/**
 * 类描述：订单扩展类
 *
 * @author heciqi
 * @date 2018/12/04 15:20
 */
public interface OrderExtendService {

    /**
     * 根据订单Id查询扩展数据，如果不需要outerData数据时，推荐使用findMiniOrderExtendByOrderId()方法
     *
     * @param orderId
     * @return
     */
    OrderExtend findOrderExtendByOrderId(Long orderId);

    /**
     * 根据订单Id查询扩展数据，该查询返回的结果中不包含outerData字段中的数据
     *
     * @param orderId
     * @return
     */
    OrderExtend findMiniOrderExtendByOrderId(Long orderId);

    /**
     * 根据订单Id查询扩展数据，该查询返回的结果中不包含outerData字段中的数据
     *
     * @param orderId
     * @return
     */
    OrderExtend findMiniOrderExtendByOrderIdSrcMaster(Long orderId);

    /**
     * 根据订单Id查询扩展数据，该查询返回的结果中不包含outerData字段中的数据。
     * 该方法主要用于ES同步数据时，获取渠道第二（扩展）订单号
     *
     * @param orderIdList
     * @return
     */
    List<OrderExtend> listMiniOrderExtendByOrderIdList(List<Long> orderIdList);

    /**
     * 清空贴花照片
     *
     * @param extId
     */
    void clearAppliqueSrcByKey(Long extId);

    /**
     * 清空贴花照片和其它照片
     *
     * @param extId
     */
    void clearAppliqueSrcAndImageSrcByKey(Long extId);

    /**
     * 清空预付款凭证照片
     *
     * @param extId
     * @return
     */
    void clearChannelPrepayCertificateSrcByKey(Long extId);

    /**
     * 清空派单信息
     *
     * @param orderExtend
     */
    void clearDistributeInfo(OrderExtend orderExtend);

    /**
     * 修改
     *
     * @param orderExtend
     * @return
     */
    int updateOrderExtend(OrderExtend orderExtend);

    /**
     * 新增
     *
     * @param orderExtend
     * @return
     */
    void insertOrderExtend(OrderExtend orderExtend);

    /**
     * 新增
     *
     * @param record
     * @return
     */
    int updateBizClueId(OrderExtend orderExtend);
}
